package lojaVirtual.manterCadastro.dao;


import java.util.List;

 
import lojaVirtual.manterCadastro.pojo.Usuario;

public class UsuarioDao implements IDao<Usuario> {

	private final GenericDao<Usuario> dao;

	public UsuarioDao() {

		dao = new GenericDao<Usuario>(Usuario.class);
	}

	@Override
	public void save(Usuario usuario) {
		this.dao.save(usuario);
	}


	@Override
	public void delete(Usuario usuario) {
		this.dao.delete(usuario);
	}

	@Override
	public Usuario find(Integer id) {
		return dao.find(id);
	}

	@Override
	public List<Usuario> list() {
		return this.dao.list( "usr_login" );
	}

	public List<Usuario> listByWhere(List<String> columns, List<String> values,
			String ordem) {

		String where = "";
		int count = 0;
		for (String column : columns) {

			if (count > 0)
				where += " and ";
			where += " " + column + "=" + values.get(count);
			count++;

		}
		where += " ";

		return this.dao.list(ordem, where);
	}
	
	@Override
	public List<Usuario> listByStatus() {

		return this.dao.list("usr_login");
	}
	
	public boolean hasUser( String name ){
		
		List<Usuario> usuarios = this.dao.findByName( "usr_login", name);
		if( usuarios.isEmpty() ){
			return false;
		}else{
			return true;
		}
	}
	
public Usuario findUser( String name ){
		
		List<Usuario> usuarios = this.dao.findByName( "usr_login", name);
		if( usuarios.isEmpty() ){
			return null;
		}else{
			return usuarios.get(usuarios.size() - 1);
		}
	}
	
}
